Skip to content

Z1 Robot arm from Unitree - #342

Closed
siilats wants to merge 15 commits into
petercorke:futurefrom
siilats:master
Closed

Z1 Robot arm from Unitree#342
siilats wants to merge 15 commits into
petercorke:futurefrom
siilats:master

Conversation

@siilats

@siilats siilats commented Nov 10, 2022

Copy link
Copy Markdown

Please find it attached

jhavl added a commit that referenced this pull request Apr 19, 2023
@petercorke
petercorke changed the base branch from master to future August 10, 2024 01:33
@petercorke

Copy link
Copy Markdown
Owner

Hi @siilats thanks for your interest in the toolbox and apologies for the very late response.

I'm happy to accept new robots to the toolbox, but this PR has got many aspects, and is quite large +50,000 lines which is a bit daunting. Could you pare this back a bit, keep the robot model, but don't include the notebooks, or save the notebooks after you've cleared the output. Is tray.csv really of general interest? There are also changes to Robot.py and tools/xacro/__init__.py which I don't fully understand, or worry about what their consequences would be for other models.

QuantuMope added a commit to HorizonRoboticsInternal/robotics-toolbox-python that referenced this pull request Nov 12, 2024
QuantuMope added a commit to HorizonRoboticsInternal/robotics-toolbox-python that referenced this pull request Nov 12, 2024
@petercorke

Copy link
Copy Markdown
Owner

Thank you for your interest in RTB, and for putting together Unitree Z1 support.

The underlying description is already available via robot_descriptions (z1_description, plus an MJCF variant z1_mj_description) — the shared community package several of our newer models (UR5, UR10, Jaco, PR2, YuMi, ...) already load through at runtime. Bundling this PR's mesh/URDF assets directly into rtb-data instead would add about 39.4 MB across 24 files to a package we're actively trying to keep lean rather than grow further.

Given both a storage concern and an already-available robot_descriptions entry, we'd rather not carry a second, bundled copy — closing this one on that basis. What's actually missing on our side is a small Z1 URDF model class following the same pattern as our existing UR5.py, loading "z1" via robot_descriptions rather than a bundled URDF -- roughly:

import numpy as np
from roboticstoolbox.models.URDF.URDFRobot import URDFRobot


class Z1(URDFRobot):
    """
    Class that imports a Unitree Z1 URDF model, loaded via
    ``robot_descriptions`` (``z1_description``) rather than a bundled
    URDF -- no rtb-data storage cost.
    """

    def __init__(self):
        super().__init__("z1", manufacturer="Unitree")

        self.qr = np.zeros(self.n)
        self.qz = np.zeros(self.n)

        self.addconfiguration("qr", self.qr)
        self.addconfiguration("qz", self.qz)

(Exact qr/joint-limit values, and whether a gripper_link_index is needed the way UR5/UR10 use one, would need checking against the real model -- this is a sketch of the loading pattern, not a tested class.) That would be a small, welcome PR — happy to help with it if useful.

Thank you again for the contribution, and please do consider resubmitting in that shape.

@petercorke petercorke closed this Aug 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants